#####################
####### Utilitaire de test de qualitÃ©
#####  2015-05-19
require(MALDIquantForeign)
require(robustbase)
normalizeSpectra <- function(spectra, MassRange=c(2000,20000), RBhws=100, SMhws=12) {
spectra <- trim(spectra,MassRange)
spectra <- transformIntensity(spectra, method="sqrt")
spectra <- smoothIntensity(spectra, method="MovingAverage", halfWindowSize=SMhws)
spectra <- removeBaseline(spectra,method="SNIP",iterations=RBhws)
spectra <- calibrateIntensity(spectra, method="TIC")
return(spectra)
}
isNoisySpectra1 <- function(x) {
a <- mc(intensity(x)[1:(length(which(mass(x)<=5000)))])
b <- mc(intensity(x)[(length(which(mass(x)<=5000))+1):(length(which(mass(x)<=10000)))])
c <- mc(intensity(x)[(length(which(mass(x)<=10000))+1):(length(which(mass(x)<=15000)))])
d <- mc(intensity(x)[(length(which(mass(x)<=15000))+1):(length(which(mass(x)<=20000)))])
if (a<=.28) {
if (b<=.25) {return (TRUE)} else {if (a<=.34 & c<=.34) {return (TRUE)}}
}
return (FALSE)
}
isNoisySpectraLMT <- function(x) {
i1 <- mc(intensity(x)[1:(length(which(mass(x)<=6000)))])
i2 <- mc(intensity(x)[(length(which(mass(x)<=6000))+1):(length(which(mass(x)<=10000)))])
i3 <- mc(intensity(x)[(length(which(mass(x)<=10000))+1):(length(which(mass(x)<=15000)))])
res_lmt <- 12.93 + i1 * -16.9 + i2 * -10.41 + i3 * -7.65
return (res_lmt)
}
isNoisySpectraLMT2 <- function(x) {
i1 <- mc(intensity(x)[1:(length(which(mass(x)<=6000)))])
i2 <- mc(intensity(x)[(length(which(mass(x)<=6000))+1):(length(which(mass(x)<=9000)))])
i3 <- mc(intensity(x)[(length(which(mass(x)<=9000))+1):(length(which(mass(x)<=12000)))])
i4 <- mc(intensity(x)[(length(which(mass(x)<=12000))+1):(length(which(mass(x)<=14000)))])
res_lmt <- 7.79 + i1 * -9.93 + i2 * -7.74 + i3 * -1.13 + i4 * -3.02
return (res_lmt>0)
}
noisy <- function(MassRange=c(2000,20000), RBhws=100, SMhws=12) {
rep <- readline(paste0("Confirmez-vous l'analyse du dossier ",getwd()," [O/N] ?"))
if (rep=="O" || rep=="o") {
noisyRoot <- "../noisySpectra"
dir.create(noisyRoot)
pathOffset <- length(unlist(strsplit(getwd(),"/")))
cat("Lecture des spectres\n")
spectra <- importBrukerFlex(".", verbose=FALSE)
cat("Normalisation des spectres\n")
spectra <- normalizeSpectra(spectra, MassRange=MassRange, RBhws=RBhws, SMhws=SMhws)
cat("Extraction des spectres bruites\n")
result <- unlist(lapply(spectra, function(x) {
if (isNoisySpectra1(x)) {
cat(x@metaData$file)
cat("\n")
folder <- head(unlist(strsplit(x@metaData$file,"/")),-1)
oldFolder <- paste0(folder,collapse="/")
filesToCopy <- dir(oldFolder)
newFolder <- paste0(head(unlist(strsplit(paste0(c(noisyRoot,tail(folder,-pathOffset)),collapse="/"),"/")),-1),collapse="/")
dir.create(newFolder,recursive=TRUE)
file.copy(oldFolder,newFolder,recursive=TRUE)
unlink(oldFolder,recursive=TRUE)
f <- unlist(strsplit(oldFolder,"/"))
sapply(1:(length(f)-pathOffset),function(x) {
y <- paste0(head(unlist(strsplit(paste0(f,collapse="/"),"/")),-x),collapse="/")
if(length(list.dirs(y))==1) { unlink(y,recursive=TRUE) }
})
oldFolder
}
}))
#return(result)
}
}
#####################
####### Utilitaire de test de qualite
#####  2015-05-19
require(MALDIquantForeign)
require(robustbase)
normalizeSpectra <- function(spectra, MassRange=c(2000,20000), RBhws=100, SMhws=12) {
spectra <- trim(spectra,MassRange)
spectra <- transformIntensity(spectra, method="sqrt")
spectra <- smoothIntensity(spectra, method="MovingAverage", halfWindowSize=SMhws)
spectra <- removeBaseline(spectra,method="SNIP",iterations=RBhws)
spectra <- calibrateIntensity(spectra, method="TIC")
return(spectra)
}
isNoisySpectra1 <- function(x) {
a <- mc(intensity(x)[1:(length(which(mass(x)<=5000)))])
b <- mc(intensity(x)[(length(which(mass(x)<=5000))+1):(length(which(mass(x)<=10000)))])
c <- mc(intensity(x)[(length(which(mass(x)<=10000))+1):(length(which(mass(x)<=15000)))])
d <- mc(intensity(x)[(length(which(mass(x)<=15000))+1):(length(which(mass(x)<=20000)))])
if (a<=.28) {
if (b<=.25) {return (TRUE)} else {if (a<=.34 & c<=.34) {return (TRUE)}}
}
return (FALSE)
}
isNoisySpectraLMT <- function(x) {
i1 <- mc(intensity(x)[1:(length(which(mass(x)<=6000)))])
i2 <- mc(intensity(x)[(length(which(mass(x)<=6000))+1):(length(which(mass(x)<=10000)))])
i3 <- mc(intensity(x)[(length(which(mass(x)<=10000))+1):(length(which(mass(x)<=15000)))])
res_lmt <- 12.93 + i1 * -16.9 + i2 * -10.41 + i3 * -7.65
return (res_lmt)
}
isNoisySpectraLMT2 <- function(x) {
i1 <- mc(intensity(x)[1:(length(which(mass(x)<=6000)))])
i2 <- mc(intensity(x)[(length(which(mass(x)<=6000))+1):(length(which(mass(x)<=9000)))])
i3 <- mc(intensity(x)[(length(which(mass(x)<=9000))+1):(length(which(mass(x)<=12000)))])
i4 <- mc(intensity(x)[(length(which(mass(x)<=12000))+1):(length(which(mass(x)<=14000)))])
res_lmt <- 7.79 + i1 * -9.93 + i2 * -7.74 + i3 * -1.13 + i4 * -3.02
return (res_lmt>0)
}
noisy <- function(MassRange=c(2000,20000), RBhws=100, SMhws=12) {
rep <- readline(paste0("Confirmez-vous l'analyse du dossier ",getwd()," [O/N] ?"))
if (rep=="O" || rep=="o") {
noisyRoot <- "..\\noisySpectra"
dir.create(noisyRoot)
pathOffset <- length(unlist(strsplit(getwd(),"\\\\")))
cat("Lecture des spectres\n")
spectra <- importBrukerFlex(".", verbose=FALSE)
cat("Normalisation des spectres\n")
spectra <- normalizeSpectra(spectra, MassRange=MassRange, RBhws=RBhws, SMhws=SMhws)
cat("Extraction des spectres bruites\n")
result <- unlist(lapply(spectra, function(x) {
if (isNoisySpectra1(x)) {
cat(x@metaData$file)
cat("\n")
folder <- head(unlist(strsplit(x@metaData$file,"\\\\")),-1)
oldFolder <- paste0(folder,collapse="\\")
filesToCopy <- dir(oldFolder)
newFolder <- paste0(head(unlist(strsplit(paste0(c(noisyRoot,tail(folder,-pathOffset)),collapse="\\"),"\\\\")),-1),collapse="\\")
dir.create(newFolder,recursive=TRUE)
file.copy(oldFolder,newFolder,recursive=TRUE)
unlink(oldFolder,recursive=TRUE)
f <- unlist(strsplit(oldFolder,"\\\\"))
sapply(1:(length(f)-pathOffset),function(x) {
y <- paste0(head(unlist(strsplit(paste0(f,collapse="\\"),"\\\\")),-x),collapse="\\")
if(length(list.dirs(y))==1) { unlink(y,recursive=TRUE) }
})
oldFolder
}
}))
#return(result)
}
}
noisy()
noisy()
setwd("G:/Spectres de ref09.02.16/Aeromicrobium massiliense CSURP158")
noisy()
setwd("G:/Spectres de ref09.02.16/Anaerococcus senegalensis CSURP156")
noisy()
setwd("G:/Spectres de ref09.02.16/Bacillus marseillensis CSURP206")
noisy()
setwd("G:/Spectres de ref09.02.16/Bacillus massilioanorexicus CSURP201")
noisy()
setwd("G:/Spectres de ref09.02.16/Bacillus massiliosenegalensis CSURP151")
noisy()
setwd("G:/Spectres de ref09.02.16/Enterobacter aerogenes CSURP210")
noisy()
setwd("G:/Spectres de ref09.02.16/Herbospirillum massiliensis CSURP895")
noisy()
setwd("G:/Spectres de ref09.02.16/Oceanobacillus massiliensis CSURP132")
noisy()
setwd("G:/Spectres de ref09.02.16/Paenibacillus camerounensis CSURP208")
noisy()
setwd("G:/Spectres de ref09.02.16/Peptoniphilus senegalensis CSURP154")
noisy()
setwd("G:/Spectres de ref09.02.16/Prevotella conceptionensis CSURP124")
noisy()
setwd("G:/Spectres de ref09.02.16/Stoquefichus massiliensis CSURP202")
noisy()
